package Exception;

import java.lang.*;
import java.util.Scanner;

public class test03 {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        double a = input.nextDouble();
        double b = input.nextDouble();
        double r=input.nextDouble();
        double h=input.nextDouble();
        IShape[] is=new IShape[2];
        is[0]=new RTriangle(a,b);
        is[1]=new Circle(r);
        Cone cn1;
        for(int i=0;i<2;i++) {
            cn1=new Cone(is[i],h);
            String vol=String.format("%.2f", cn1.getVolume());
            String p=String.format("%.2f",is[i].getPerimeter());
            System.out.println("Volume"+i+"="+vol+" Perimeter="+p);
        }
    }
}
/* 将其他代码填写在下面 */
interface IgetArea{
    double getArea();
}
interface IgetPerimeter{
    double getPerimeter();
}
interface IShape extends IgetArea,IgetPerimeter{
    double PI = 3.14;
}
class RTriangle implements IShape{
    private double edge1;
    private double edge2;

    public RTriangle(double edge1, double edge2) {
        this.edge1 = edge1;
        this.edge2 = edge2;
    }

    @Override
    public double getArea() {
        return 0.5 * edge1 * edge2;
    }

    @Override
    public double getPerimeter() {
        double n = edge1 * edge1 + edge2 * edge2;
        return Math.pow(n,0.5) + edge1 + edge2;
    }
}
class Circle implements IShape{
    private double r;

    public Circle(double r) {
        this.r = r;
    }

    @Override
    public double getArea() {
        return PI * r * r;
    }

    @Override
    public double getPerimeter() {
        return 2 * PI * r;
    }
}
class Cone{
    private IShape IS;
    private double h;

    public Cone(IShape IS, double h) {
        this.IS = IS;
        this.h = h;
    }

    public double getVolume() {
        return 1 / 3.0 * h * IS.getArea();
    }

}
//定义一个接口IgetArea，有方法double getArea(); 用于计算形状面积，定义另外一个接口IgetPerimeter，有方法 double getPerimeter();用于计算形状周长。
// 接口IShape 有常量 PI=3.14,继承 接口IgetArea和IgetPerimeter
//定义一个直角三角形类（regular triangle）RTriangle类，实现接口IShape。两条直角边作为Triangle类的私有成员，类中包含参数为2条直角边的构造方法。
//定义一个圆形类Circle，实现接口IShape。半径r作为Circle类的私有成员，类中包含参数为r的构造方法。
//定义一个锥体类Cone ，类中有一个IShape类型的成员IS，和锥体高h的成员，包含一个构造方法给IS和h赋初值，另外还有一个 public double getVolume() 方法，用于计算锥体的体积